package com.itheima.controller;

import com.itheima.pojo.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

//@Controller
@RestController
@RequestMapping("/ajax")
public class AjaxController {

    /*
        有一个新的注解 用来
           代替  类上 @Controller和 方法中 @ResponseBody
           @RestController

     * 处理器以方法形式出现
     *    如果请求是一个异步的请求  那么我们怎么写处理器
     *     使用之前 ModelAndView 合适吗？
     *         model  数据
     *         view 找到视图 找到页面
     *
     *     ajax  不用你找页面
     *        异步请求的处理 只关注 数据  也就是响应体
     *
     *        @ResponseBody
     *            主要用于 异步请求的处理器中
     *            代表返回的内容是放在响应体中！
     *               如果返回类型 String  返回的就是一个字符串
     *               如果返回类型是对象   返回的就是对象转换成json字符串  （前提需要导入相关的依赖jar包）
     *
     *       @RequestBody
     *          就是把前端的json格式数据 转换成 你要接收的javabean类型
     */


    /**
     *
     * @return String 就是想给 前端的数据
     */
    @GetMapping("/testGet")
//    @ResponseBody
    public String testAjax(int id,String name){
        System.out.println("这是异步来的请求:id:"+id+"  name:"+name);
        return "this is my response data";
    }


    /**
     *
     * @return String 就是想给 前端的数据
     */
    @GetMapping("/testGet2")
//    @ResponseBody
    public User testAjax2(User user){
        System.out.println("这是异步来的请求:user:"+user);

        user.setName("李四");
        // 想把 对象 变成json给前端
        return user;
    }

    @PostMapping("/testPost")
//    @ResponseBody
    public User testAjax3(@RequestBody User user){
        System.out.println("这是异步来的请求:user:"+user);

        user.setName("李四");
        // 想把 对象 变成json给前端
        return user;
    }

}
